package main

import (
	"fmt"
	"io"
	"os"
)

// 自己编写一个函数，接受两个文件路径，srcFileName dstFileName

func CopyFile(srcFileName, destFileName string) (err error) {
	//打开文件 文件地址
	sFile, err1 := os.Open(srcFileName)
	defer sFile.Close()
	//写入文件 目的地址  操作  权限
	dFile, err2 := os.OpenFile(destFileName, os.O_CREATE|os.O_WRONLY, 0666)
	defer dFile.Close()
	if err1 != nil || err2 != nil {
		fmt.Println("打开文件失败～")
		return
	}
	var tempSlice = make([]byte, 128)
	for {
		//读取数据
		n1, err3 := sFile.Read(tempSlice)
		if err3 == io.EOF {
			break
		}
		if err3 != nil {
			return err3
		}
		//写入数据
		_, err4 := dFile.Write(tempSlice[:n1])
		if err4 != nil {
			return err4
		}
	}
	return nil
}

func main() {
	var srcFileName = "/Users/luojialiang/Documents/申通申雪6账期.xls"
	var destFileName = "/Users/luojialiang/Desktop/测试.xls"
	err := CopyFile(srcFileName, destFileName)
	if err == nil {
		fmt.Printf("拷贝完成\n")
	} else {
		fmt.Printf("拷贝失败,%v\n", err)
	}
}
